From 90cc7655d193d58c0b19c6b91c42debe48dd2a05 Mon Sep 17 00:00:00 2001 From: Tim Deegan Date: Thu, 29 Mar 2007 15:28:27 +0000 Subject: [PATCH] [HVM] Save/restore: Save the ACPI PM control register in qemu Signed-off-by: Tim Deegan --- tools/ioemu/hw/piix4acpi.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/tools/ioemu/hw/piix4acpi.c b/tools/ioemu/hw/piix4acpi.c index c4a8e38cd0..731ba83f80 100644 --- a/tools/ioemu/hw/piix4acpi.c +++ b/tools/ioemu/hw/piix4acpi.c @@ -57,6 +57,20 @@ typedef struct PCIAcpiState { uint16_t pm1_control; /* pm1a_ECNT_BLK */ } PCIAcpiState; +static void piix4acpi_save(QEMUFile *f, void *opaque) +{ + PCIAcpiState *s = opaque; + qemu_put_be16s(f, &s->pm1_control); +} + +static int piix4acpi_load(QEMUFile *f, void *opaque, int version_id) +{ + PCIAcpiState *s = opaque; + if (version_id > 1) + return -EINVAL; + qemu_get_be16s(f, &s->pm1_control); +} + static void acpiPm1Control_writeb(void *opaque, uint32_t addr, uint32_t val) { PCIAcpiState *s = opaque; @@ -193,4 +207,8 @@ void pci_piix4_acpi_init(PCIBus *bus, int devfn) d->pm1_control = SCI_EN; acpi_map(d, 0, 0x1f40, 0x10, PCI_ADDRESS_SPACE_IO); + + register_savevm("piix4acpi", 0, 1, piix4acpi_save, piix4acpi_load, d); + register_savevm("piix4acpi_pci", 0, 1, generic_pci_save, generic_pci_load, + &d->dev); } -- 2.30.2